package com.pencilisland.pay.mgt.console.service;

import java.util.List;

import org.springframework.data.domain.Page;

import com.pencilisland.pay.mgt.console.entity.SysOrg;
import com.pencilisland.pay.mgt.console.entity.SysRole;
import com.pencilisland.pay.mgt.console.entity.SysRoleObj;
import com.pencilisland.pay.mgt.console.entity.SysUser;

/**
 * 角色服务
 * 
 * @author Breeze
 *
 */
public interface RoleService {

	/**
	 * 分布查询角色列表
	 * 
	 * @param cretiria
	 * @param start
	 * @param length
	 * @return
	 */
	Page<SysRole> roleList(String cretiria, int start, int length);

	/**
	 * 查询角色对象列表
	 * 
	 * @param roleId
	 * @return
	 */
	List<SysRoleObj> roleObjList(Long roleId);

	/**
	 * 保存更新
	 * 
	 * @param role
	 * @return
	 */
	SysRole save(SysRole role);

	/**
	 * 删除角色
	 * 
	 * @param roleId
	 */
	void delete(Long roleId);

	/**
	 * 加载角色数据
	 * 
	 * @param id
	 * @return
	 */
	SysRole loadData(Long roleId);

	/**
	 * 角色对象集合
	 * 
	 * @param id
	 * @param objType
	 * @return
	 */
	String objs(Long id, String objType);

	/**
	 * 角色对象更新
	 * 
	 * @param objIds
	 * @param objType
	 */
	void objsSave(Long roleId,String objIds,String objNames, String objType);

	/**
	 * 删除角色对象
	 * @param id
	 */
	void deleteObj(Long id);

	/**
	 * 查找用户所有角色
	 * @param user
	 * @param orgList
	 * @return
	 */
	List<SysRole> findAllRoles(SysUser user, List<SysOrg> orgList);

}
